package com.itheima.d2_thread_api;

/*
    多线程的创建方式二：实现Runnable接口

    实现步骤
        1 定义一个线程任务类MyRunnable实现Runnable接口，重写run()方法
        2 创建MyRunnable任务对象
        3 把MyRunnable任务对象交给Thread处理。
        4 调用线程对象的start()方法启动线程

    方式二的优缺点
        优点：任务类只是实现接口，可以继续继承其他类、实现其他接口，扩展性强。
        缺点：需要多一个Runnable对象。
 */
public class ThreadDemo2 {
    public static void main(String[] args) {
        // 3 创建任务类对象
        MyRunnable runnable = new MyRunnable();
        // 4 创建一个线程(Thread类)对象 , 把任务类的对象作为构造方法的参数传递
        Thread thread = new Thread(runnable);
        // 5 开启线程
        thread.start();

        // 4 创建一个线程(Thread类)对象 , 把任务类的对象作为构造方法的参数传递
        Thread thread2 = new Thread(runnable);
        // 5 开启线程
        thread2.start();

        // main线程中定义任务
        for (int i = 1; i <= 10; i++) {
            System.out.println("main线程中打印数据:" + i);
        }
    }
}

// 1 自定义一个类实现Runnable接口
// 任务类
class MyRunnable implements Runnable {
    // 2 重写接口中的抽象run方法
    @Override
    public void run() {
        for (int i = 1; i <= 10; i++) {
            System.out.println("新线程打印数据:" + i);
        }
    }
}

